#ifndef __M_MESSAGE_H__
#define __M_MESSAGE_H__
/*
1.日志的输出时间：用于过滤日志输出时间
2.日志等级：用于进行日志过滤分析
3.源文件名称
4.源代码行号：用于定位出错的代码位置
5.线程ID：用于过滤出错的线程
6.日志主体消息
7.日志器名称：支持多日志器的同时使用
*/
#include <iostream>
#include "level.hpp"
#include "util.hpp"
#include <string>
#include <thread>
namespace logslearn{
    //日志消息模块
    struct LogMsg
    {
        time_t _ctime;//日志产生的时间戳
        loglevel::value _level;//日志产生的等级
        size_t _line;//行号
        std::thread::id _tid;//线程id
        const std::string _file;//源文件
        const std::string _logger;//日志器名称
        const std::string _payload;//有效消息数据
        //初始化列表
        LogMsg(loglevel::value leven,size_t line,const std::string file,const std::string logger,const std::string msg):
        _ctime(logsLearn::util::Data::now()),
        _level(leven),
        _line(line),
        _tid(std::this_thread::get_id()),
        _file(file),
        _logger(logger),
        _payload(msg)
        {}
    };
}
#endif